#include <string>
#include <iostream>
using namespace std;

/*
复数 可以用字符串表示，遵循 "实部+虚部i" 的形式，并满足下述条件：

实部 是一个整数，取值范围是 [-100, 100]
虚部 也是一个整数，取值范围是 [-100, 100]
i2 == -1
给你两个字符串表示的复数 num1 和 num2 ，请你遵循复数表示形式，返回表示它们乘积的字符串。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/complex-number-multiplication
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

class Solution
{
public:
    string complexNumberMultiply(string num1, string num2)
    {
        int a = 0, b = 0, m = 0, n = 0;
        constexpr char fmt[] = "%d+%di";
        sscanf(num1.c_str(), fmt, &a, &b);
        sscanf(num2.c_str(), fmt, &m, &n);
        int x = a * m - b * n;
        int y = b * m + a * n;
        char res[300] = {0};
        sprintf(res, fmt, x, y);
        return res;
    }
};